﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using LINQtoFxCop.Core;
using Microsoft.FxCop.Sdk;

namespace LINQtoFxCop.Metrics
{
  public abstract class MetricsIntrospectionRule : CoreIntrospectionRule
  {
    private const string _RESOURCE_NAME = "LINQtoFxCop.Metrics.MetricsMetaData";

    protected MetricsIntrospectionRule(string name, string resourceName, Assembly assembly)
      : base(name, resourceName, assembly)
    { }
    protected internal MetricsIntrospectionRule(string name)
      : this(name, _RESOURCE_NAME, typeof(MetricsIntrospectionRule).Assembly)
    { }

    protected virtual double MetricThreshold()
    { return -1; }
  }
}
